package cn.edu.dzkd.software.service;

import cn.edu.dzkd.software.mapper.ModuleMapper;
import cn.edu.dzkd.software.mapper.UserMapper;
import cn.edu.dzkd.software.pojo.Module;
import cn.edu.dzkd.software.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import javax.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: PDJ
 * Date: 2022/07/07 16:59
 * Description:
 * Version: V1.0
 */
@Service
public class ModuleService {

    @Resource
    private ModuleMapper moduleMapper;  // spring框架自动生成了一个mapper对象，注入到此属性中

    public Map<String, Object> selectModules(int page,
                                             String moduleName,
                                             String moduleVersion,
                                             String dangerlevel) {
        int index = (page - 1) * 10;                   // 根据页码计算出当前页的第一条数据下标
        Map<String, Object> map = new HashMap<>();
        List<Module> modules = moduleMapper.selectModules(index,moduleName,moduleVersion,dangerlevel);    // 通过sql获取数据库pojo数据
        int counts = moduleMapper.selectModuleCounts(moduleName,moduleVersion,dangerlevel);            // 通过sql获取总条数
        map.put("code", 0);           // layui默认返回0的状态为成功
        map.put("msg", "");           // layui不解析msg中的信息
        map.put("count", counts);     // 记录数据表中总条数
        map.put("data", modules);       // 当前页的数据内容
        return map;
    }

    public Map<String, Object> insertModuleJSON(Module module) {

        Map<String, Object> map = new HashMap<>();
        moduleMapper.insertModuleJSON(module);
        map.put("code", 200);
        map.put("msg", "新增成功");
        return map;
    }

    public Map<String, Object> deleteById(String id) {
        moduleMapper.deleteById(id);

        Map<String, Object> map = new HashMap<>();
        map.put("code", 200);
        map.put("msg", "删除成功");
        return map;
    }
    public Map<String, Object> update(Module module) {
        Map<String, Object> map = new HashMap<>();
        moduleMapper.update(module);
        map.put("code", 200);
        map.put("msg", "更新组件成功");
        map.put("data", module);
        return map;
    }
}
